package studio7i.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import studio7i.excepcion.DAOExcepcion;
import studio7i.modelo.Servicio;
import studio7i.util.ConexionBD;

public class ServicioDAO extends BaseDAO{

	public Servicio insertar(Servicio servicio) throws DAOExcepcion {
		String query = "insert into servicio (nombre,caracteristicas,precio) values (?,?,?)";
		Connection con = null;
		PreparedStatement stmt = null;
		Servicio ser=null;
		try {
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);
			
			stmt.setString(1,servicio.getNombre());
			stmt.setString(2,servicio.getCaracteristicas());
			stmt.setDouble(3,servicio.getPrecio());
			
			int i = stmt.executeUpdate();
			if (i != 1) {
				throw new SQLException("No se pudo insertar");
			}else{
				ser=servicio;
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		return ser;
	}
	
	
public Collection<Servicio> listar() throws DAOExcepcion {
		
		Collection<Servicio> c = new ArrayList<Servicio>();
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		String strsql="";
		
		try {
			con = ConexionBD.obtenerConexion();
			
			
			strsql ="";
			strsql +="SELECT A.idServicio,A.nombre,A.caracteristicas,A.precio ";
			strsql +="from servicio";
				
			
			stmt = con.prepareStatement(strsql);
			rs = stmt.executeQuery();
			while (rs.next()) {
				Servicio se = new Servicio();
				
				se.setIdServicio(rs.getInt("idServicio"));
				se.setNombre(rs.getString("nombre"));
				se.setCaracteristicas(rs.getString("caracteristicas"));
				se.setPrecio(rs.getDouble("A.precio"));
				c.add(se);
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		
		return c;		
	}
}
